wx.cloud.init()
const db = wx.cloud.database();
const _ = db.command

Page({

  /**
   * 页面的初始数据
   */
  data: {
    search: [], //搜索列表
    //以下是搜索开始
    sex: ['女', '男'],
    sex_ind: 0,
    marriage: ['未婚', '离异', '丧偶', '全部'],
    marriage_ind: 0,
    search_age: false, //是否显示搜索时年龄弹出框
    search_age_text: true, //如果为true则显示年龄2个字 否则显示 用户选择的最小年龄和最大
    search_age_min: '', //最小年龄范围
    search_age_max: '', //最大的年龄范围
    bodyheight: ['身高', '150CM', '155CM', '158CM', '160CM', '162CM', '163CM', '164CM', '165CM', '168CM', '170CM', '172CM', '173CM', '175CM', '180CM', '182CM', '185CM', '187CM', '188CM', '190CM', '195CM'],
    bodyheightValue: [0, 150, 155, 158, 160, 162, 163, 164, 165, 168, 170, 172, 173, 175, 180, 182, 185, 187, 188, 190, 195],
    bodyheight_ind: 0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var admin_openid = wx.getStorageSync('admin_openid')
    var admin_authority = wx.getStorageSync('authority')//红娘还是管理员
    if (typeof (admin_openid) == "undefined" || admin_openid == 0 || typeof (admin_authority) == "undefined" || admin_authority == 0) {
      wx.reLaunch({
        url: '/pages/admin/admin',
      })
    } else if (admin_authority != '管理员') {
      wx.showModal({
        title: '权限不足',
        content: '您无权访问该页',
        success(res) {
          wx.reLaunch({
            url: '/pages/admin/admin',
          })
        }
      })
    } else {
     // this.getData(0)
    }
  },
  sex: function (e) {
    /**选择了性别 */
    console.log(e.detail.value)
    this.setData({
      sex_ind: e.detail.value
    })
  },
  marriage: function (e) {
    /**选择了婚姻状态 */
    console.log(e.detail.value)
    this.setData({
      marriage_ind: e.detail.value
    })
  },
  age: function () {
    /**搜索时选择年龄范围 */
    this.setData({
      search_age: !this.data.search_age
    })
  },
  bodyheight: function (e) {
    /**选择了身高 */
    console.log(e.detail.value)
    this.setData({
      bodyheight_ind: e.detail.value
    })
  },
  searchSubmit: function (e) {
    /**搜索时候选择了年龄的提交处理 */
    console.log(e)
    var minage = e.detail.value.minage; //最小范围
    var maxage = e.detail.value.maxage; //最小范围
    if (typeof (minage) == "undefined" || minage == 0) {
      wx.showToast({
        title: '请输入最小年龄',
        icon: 'none'
      })
      return;
    }

    var regPos = /^\d+(\.\d+)?$/;  //非负浮点数        
    var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;  //负浮点数        
    if (regPos.test(minage) || regNeg.test(minage)) {         } else {
      wx.showToast({
        title: '最小年龄必须为数字',
        icon: 'none'
      })
      return;
    }

    if (minage < 18 || minage > 60) {
      wx.showToast({
        title: '最小年龄在18~60岁之间',
        icon: 'none'
      })
      return;
    }


    if (typeof (maxage) == "undefined" || maxage == 0) {
      wx.showToast({
        title: '请输入最大年龄',
        icon: 'none'
      })
      return;
    }

    if (regPos.test(maxage) || regNeg.test(maxage)) { } else {
      wx.showToast({
        title: '最大年龄必须为数字',
        icon: 'none'
      })
      return;
    }

    if (maxage < 18 || maxage > 60) {
      wx.showToast({
        title: '最大年龄在18~60岁之间',
        icon: 'none'
      })
      return;
    }


    if (minage > maxage) {
      wx.showToast({
        title: '最小年龄不能大于最大年龄',
        icon: 'none'
      })
      return;
    }

    this.setData({
      search_age_min: minage,
      search_age_max: maxage,
      search_age_text: false, //设置不显示年龄
      search_age: false //关闭弹窗
    })
  },
  search2: function () {
    /**准备搜索开始, */
    let sex_ind = this.data.sex_ind //性别
    let marriage_ind = this.data.marriage_ind //婚姻
    let age = this.data.search_age_text //是否过滤年龄
    let minage = this.data.search_age_min //最小年龄
    let maxage = this.data.search_age_min //最大年龄
    let bodyheight_ind = this.data.bodyheight_ind //身高

    this.getData2({
      sex_ind: sex_ind,
      marriage_ind: marriage_ind,
      age: age,
      minage: minage,
      maxage: maxage,
      bodyheight_ind: bodyheight_ind
    })

  },
  getData2: function (options) {
    /**获取搜索数据 只为本页的搜索按钮服务*/
    let obj = {}
    if (options.age) {
      console.log('age等于true')
      //如果为true 则代表没有选择年龄范围,那么就有可能选择身高,所以先检查身高是否有选择
      if (options.bodyheight_ind > 0) {
        //选择了身高
        obj = {
          sex_ind: parseInt(options.sex_ind), //0为女 1为男
          marriage: this.data.marriage[parseInt(options.marriage_ind)], //婚姻状态
          bodyheight: _.gte(this.data.bodyheightValue[parseInt(options.bodyheight_ind)]),
          status: true
        }
      } else {
        //没有选择身高
        obj = {
          sex_ind: parseInt(options.sex_ind), //0为女 1为男
          marriage: this.data.marriage[parseInt(options.marriage_ind)], //婚姻状态
          status: true
        }
      }


    } else {
      console.log('age等于false')
      //如果用户选择了年龄
      if (options.bodyheight_ind > 0) {
        //如果选择了身高
        obj = {
          sex_ind: parseInt(options.sex_ind), //0为女 1为男
          marriage: this.data.marriage[parseInt(options.marriage_ind)], //婚姻状态
          age: _.gte(parseInt(options.minage)).and(_.lte(parseInt(options.maxage))), //年龄大于等于最小 并且 小于等于最大
          bodyheight: _.gte(this.data.bodyheightValue[parseInt(options.bodyheight)]), //大于等于身高
          status: true
        }
      } else {
        //没有选择身高
        obj = {
          sex_ind: parseInt(options.sex_ind), //0为女 1为男
          marriage: this.data.marriage[parseInt(options.marriage_ind)], //婚姻状态
          age: _.gte(parseInt(options.minage)).and(_.lte(parseInt(options.maxage))), //年龄大于等于最小 并且 小于等于最大
          status: true
        }

      }

    }

    //console.log('obj:',obj)    
    db.collection('user').where(obj)
      .orderBy('access', 'desc') //浏览量多的靠前
      .field({
        id: true,
        name: true,
        age: true,
        bodyheight: true,
        bodyweight:true,
        image: true,
        marriage: true,
        claim: true
      })
      .get()
      .then(res => {
        console.log('getdata:', res)
        this.setData({
          search: res.data
        })
      })
  },
  url: function (e) {
    // 点击了搜索结果查看详情
    wx.navigateTo({
      url: '../userShow/userShow?id=' + e.currentTarget.dataset.id,
    })
  },
  search: function (s) {
    /**按编码搜索 */
    wx.navigateTo({
      url: '../a_search/a_search?bianhao=' + s.detail.value,
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },


})